Touch-controlled game character motion providing dynamically-positioned virtual control pad

ABSTRACT

Methods and apparatus for controlling movement of a digital object displayed on a screen provide a virtual dynamic direction control pad based on zone detection and touch stroke direction to control customized animated character motion. A player wishing to move the digital object can use a stylus or other touch to indicate a first point on the screen. When the player first touches the stylus to the screen, the system analyzes the touch and divides the screen into multiple zones around the first point indicated by the player. To move the object, the player moves the stylus to a second point on the screen. Movement of the stylus to a second point within one of these zones causes the digital object to perform a predetermined action. Each zone has a predetermined associated action. Direct control of character motion by the game player is enhanced.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of application Ser. No. 11/464,221filed Aug. 14, 2006, which is a nonprovisional application claiming thebenefit of priority from application No. 60/745,892, filed on Apr. 28,2006, each of these applications is incorporated herein by reference intheir entirety. This application also incorporates the entirety of U.S.application Ser. No. 11/464,227 (which is now U.S. Pat. No. 8,146,018).

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

None.

FIELD

The technology herein relates to control of a digital object in avirtual gamespace. More specifically, the technology herein relates tovideo game user interfaces using touch screens, and to control ofdigital objects such as animated characters in a virtual gamespace usingtouch.

BACKGROUND AND SUMMARY

Portable, handheld video game systems are popular among people of allages. Some examples of these systems include Nintendo GameBoy® andNintendo GameBoy Advance®. With the advent of touch screens, the playercan now interact with the game screen using a stylus.

Handheld portable computing systems which use a touch screen and stylushave existed in the past, but these systems have generally been directedat data storage and organization. While basic games have been developedfor such systems, games nearing the magnitude and scope of typicalportable handheld gaming have generally not been available in the past.People using these stylus controlled systems have generally used themfor business and time management, not as video game systems.

Even though stylus based portable devices exist, additional improvementsallowing the player to experience the benefits a stylus could provide ina video game system would be beneficial. Needs exist for stylus basedcontrol that are as easy to use as joystick control of a digital objectin a virtual gamespace.

The exemplary illustrative non-limiting implementations herein providemethods and apparatus for controlling movement of a digital objectdisplayed on a screen. The digital object may be any digital object suchas for example a game character. A player wishing to move the digitalobject can use a stylus or other touch to indicate a first point on thescreen. For the object to be selected, the point indicated by the playermay be within a selection area specified for selecting the digitalobject for movement. To move the object, the player moves the touch to asecond point on the screen, thereby providing a stroke. The digitalobject then moves based on the direction of the stroke.

When the player first touches the stylus to the screen, the systemanalyzes the touch and divides the screen into multiple zones around thefirst point indicated by the player. Movement of the stylus to a secondpoint within one of these zones causes the digital object to perform apredetermined action. Each zone has a predetermined action associatedwith it. For example, a rightmost zone may have a rightwards movementassociated with it, a leftmost zone may have a leftwards movementassociated with it, and the like.

Exemplary illustrative non-limiting implementations allow a player tomanipulate a game object in a flexible fashion. The player feels as ifhe is directly manipulating the game object and so has a closeconnection to the game experience.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages will be better and morecompletely understood by referring to the following detailed descriptionof exemplary non-limiting illustrative embodiments in conjunction withthe drawings, of which:

FIG. 1A is an external view of an exemplary illustrative non-limitingimplementation of a game apparatus 1 for executing a game programproviding stylus-based object control;

FIG. 1B is a block diagram showing an exemplary illustrative internalstructure of the game apparatus 1;

FIG. 2 shows an exemplary illustrative non-limiting movable gamecharacter;

FIG. 3 shows another exemplary representation of a movable gamecharacter in a virtual gamespace;

FIG. 4 shows an additional exemplary representation of a movable gamecharacter in a virtual gamespace;

FIG. 5 shows an exemplary non-limiting implementation of stylusdetection zones;

FIG. 6 shows a flowchart of an exemplary non-limiting illustrativeimplementation of stylus control over a game character;

FIG. 7 shows an exemplary non-limiting illustrative implementation of amovable game character surrounded by a plurality of regions;

FIG. 8 shows a state diagram of an exemplary implementation of variousactions associated with exemplary stylus control;

FIG. 9A shows an example further exemplary illustrative implementationusing stylus touch to control rotation of a virtual character around avirtual object; and

FIG. 9B shows more details concerning the exemplary FIG. 9Aimplementation including display of a virtual control wheel.

DETAILED DESCRIPTION

Exemplary Illustrative Touch Screen Based Game Play Platform

FIGS. 1A and 1B show an exemplary illustrative non-limiting game deviceP. Referring to FIG. 1A, a game device P of one exemplary illustrativenon-limiting implementation includes a first liquid crystal display(LCD) 12 and a second LCD 14. The LCD 12 and the LCD 14 are provided ona housing 16 so as to be arranged in a predetermined position. In thisimplementation, the housing 16 consists of an upper housing 16 a and alower housing 16 b, and the LCD 12 is provided on the upper housing 16 awhile the LCD 14 is provided on the lower housing 16 b. Accordingly, theLCD 12 and the LCD 14 are closely arranged so as to be longitudinally(vertically) parallel with each other.

It is noted that although the LCD is used as a display in thisimplementation, an EL (Electro-Luminescence) display or a plasma displaymay be used in place of the LCD. Alternatively, a CRT display may beused for game consoles, arcade video game machines, etc.

As can be understood from FIG. 1A, the upper housing 16 a has a planarshape a little larger than a planar shape of the LCD 12, and has anopening formed so as to expose a display surface of the LCD 12 from onemain surface thereof. The lower housing 16 b has a planar shapehorizontally longer than the upper housing 16 a, and has an openingformed so as to expose a display surface of the LCD 14 at anapproximately center of the horizontal direction. Furthermore, the lowerhousing 16 b is provided with a sound hole 18 and an operating switch 20(20 a, 20 b, 20 c, 20 d, 20 e, 20L and 20R).

The upper housing 16 a and the lower housing 16 b are rotatablyconnected at a lower side (lower edge) of the upper housing 16 a and apart of an upper side (upper edge) of the lower housing 16 b.Accordingly, in a case of not playing a game, for example, if the upperhousing 16 a is rotatably folded such that the display surface of theLCD 12 and the display surface of the LCD 14 are face to face with eachother, it is possible to prevent the display surface of the LCD 12 andthe display surface of the LCD 14 from being damaged. The upper housing16 a and the lower housing 16 b are not necessarily rotatably connectedwith each other, and may alternatively be provided integrally (fixedly)to form the housing 16.

The operating switch 20 includes a direction instructing switch (crossswitch) 20 a, a start switch 20 b, a select switch 20 c, an actionswitch (A button) 20 d, an action switch (B button) 20 e, an actionswitch (L button) 20L, and an action switch (R button) 20R. The switches20 a, 20 b and 20 c are placed at the left of the LCD 14 on the one mainsurface of the lower housing 16 b. The switches 20 d and 20 e are placedat the right of the LCD 14 on the one main surface of the lower housing16 b. Switches 20L and 20R are placed in a part of an upper edge (topsurface) of the lower housing 16 b and lie on each side of the connectedportion with the upper housing 16 a.

The direction instructing switch 20 a functions as a digital joystick,and is used for instructing a moving direction of a player character (orplayer object) to be operated by a player, instructing a movingdirection of a cursor, and so forth by operating any one of fourdepression portions. The start switch 20 b is formed by a push button,and is used for starting (restarting) a game, temporarily stopping(pausing) a game, and so forth. The select switch 20 c is formed by thepush button, and used for a game mode selection, etc.

The action switch 20 d (that is, the A button) is formed by the pushbutton, and allows the player character to perform an action that isgame specific. For example, it may be used for instructing charactermovement direction, such as hitting (punching), throwing, holding(obtaining), riding, jumping, etc. For example, in an action game, it ispossible to apply an instruction of jumping, punching, moving arms, etc.In a role-playing game (RPG) or a simulation RPG, it is possible toapply an instruction of obtaining an item, selecting and determiningacts or commands, etc. The action switch 20 e (that is, the B button) isprovided by a push button, and is used for changing a game mode selectedby the select switch 20 c, canceling an action determined by the Abutton 20 d, and so forth.

The action switch (left depression button) 20L and the action switch(right depression button) 20R are formed by a push button. The leftdepression button (L button) 20L and the right depression button (Rbutton) 20R can perform the same operation as the A button 20 d and theB button 20 e, and also function as a subsidiary of the A button 20 dand the B button 20 e.

A touch panel 22 is provided on a top surface of the LCD 14. As thetouch panel 22, any type of a resistance film system, an optical system(infrared rays system) or an electrostatic capacitive coupling system,for example, can be used. In response to an operation of depressing,stroking or touching with a stick 24, a pen (stylus pen), or a finger(hereinafter, referred to as “stick 24, etc.”) on a top surface(detection surface) of the touch panel 22, the touch panel 22 detectscoordinates of operating position of the stick 24, etc. and outputscoordinate data corresponding to the detected coordinates.

According to this implementation, the exemplary non-limiting resolutionof the display surface of the LCD 14 is 256 dots×192 dots, and adetection accuracy of a detection surface of the touch panel 22 is alsorendered 256 dots×192 dots in correspondence to the resolution of thedisplay surface (this is the same or approximately the same as for theLCD 12). Detection accuracy of the detection surface of the touch panel22, however, may be lower than the resolution of the display surface ofthe LCD 14, or higher than it. In the detected coordinates of the touchpanel 22, a point of origin (0, 0) is on an upper left corner, a righthorizontal direction is an X-axis normal direction and a downwardvertical direction is a Y-axis normal direction (the same applies to thecoordinate system of the LCD 14 (12)). A three-dimensional game spaceoften has X and Y coordinates on the horizontal plane and a Z axis in avertical direction.

It is possible to display different game images (game screens) on theLCD 12 and the LCD 14. This allows the player to point at (specify) ormake active (move) character images displayed on the screen of the LCD14, such as player characters, enemy characters, item characters, textinformation and icons, or select a command, by operating the touch panel22 with the stick 24, etc. This also makes it possible to change anorientation of a virtual camera (viewpoint) provided in thethree-dimensional game space or scroll through a game screen (the screenis displayed in a state of being gradually moved).

As stated above, the game device 10 has the LCD 12 and the LCD 14 as adisplay portion of two screens, and by providing the touch panel 22 onan upper surface of any one of them (LCD 14 in the first embodiment),the game device 10 has the two screens (LCD 12, 14) and the twooperating portions (20, 22).

Additionally, in this implementation, the stick 24 can be inserted intoa housing portion (housing slot) 26 provided in proximity to a sidesurface (right side surface) of the upper housing 16 a, for example, andtaken out therefrom as necessary. In a case of providing no stick 24, itis not necessary to provide the housing portion 26.

The game device 10 further includes a memory card (or game cartridge)28. The memory card 28 is detachable, and inserted into a loading slot30 provided on a rear surface or a lower edge (bottom surface) of thelower housing 16 b. Although omitted in FIG. 1A, a connector 46 (seeFIG. 1B) is provided at a depth portion of the loading slot 30 forconnecting a connector (not shown) provided at an end portion of thememory card 28 in the loading direction. When the memory card 28 isloaded into the loading slot 30, the connectors are connected with eachother, and therefore, the memory card 28 is accessible by a CPU core 42(see FIG. 1B) of the game device 10.

A speaker 32 (see FIG. 1B) is provided at a position corresponding tothe sound hole 18 inside the lower housing 16 b. A battery accommodatingbox is provided on a rear surface of the lower housing 16 b, and a powerswitch, a volume switch, an external expansion connector, an earphonejack, etc. are provided on a bottom surface of the lower housing 16 b.

FIG. 1B is a block diagram showing an exemplary illustrativenon-limiting electric configuration of the game device 10. Referring toFIG. 1B, the game device 10 includes an electronic circuit board 40, andon the electronic circuit board 40, a circuit component such as a CPUcore 42, etc. is mounted. The CPU core 42 is connected to the connector46 via a bus 44, and is connected with a RAM 48, a first graphicsprocessing unit (GPU) 50, a second GPU 52, an input-output interfacecircuit (hereinafter, referred to as “I/F circuit”) 54, and an LCDcontroller 60.

The connector 46 is detachably connected with the memory card 28 asdescribed above. The memory card 28 includes a ROM 28 a and a RAM 28 b.The ROM 28 a and the RAM 28 b are connected with each other via a busand also connected with a connector (not shown) to be connected with theconnector 46. Accordingly, the CPU core 42 gains access to the ROM 28 aand the RAM 28 b as described above.

The ROM 28 a stores in advance a game program for a virtual game to beexecuted by the game device 10. ROM 28 a may also store image data(character image, background image, item image, icon (button) image,message image, etc.), data representing sounds or music used toaccompany the game (sound data), etc. The RAM (backup RAM) 28 b stores(saves) proceeding data and result data of the game.

The RAM 48 is used as a buffer memory or a working memory. The CPU core42 loads the game program, the image data, the sound data, etc. storedin the ROM 28 a of the memory card 28 into the RAM 48, and executes theloaded game program. The CPU core 42 executes a game process whilestoring in the RAM 48 data (game data and flag data) temporarilygenerated in correspondence with progress of the game.

The game program, the image data, the sound data, etc. are loaded fromthe ROM 28 a entirely at a time, or partially and sequentially so as tobe stored (loaded) into the RAM 48.

Each of the GPU 50 and the GPU 52 forms a part of a rendering means.They may be provided by, for example, a single chip ASIC. GPU 50, 52receive graphics commands from the CPU core 42 to generate game imagedata according to the graphics command. The CPU core 42 provides each ofthe GPU 50 and the GPU 52 with an image generating program (included inthe game program) used to generate the game image data in addition tothe graphics command.

GPU 50 is connected with a first video RAM (hereinafter, referred to as“VRAM”) 56. GPU 52 is connected with a second VRAM 58. The GPU 50 andthe GPU 52 obtain data required for the GPU 50 and the GPU 52 to executethe graphics command (image data: character data, texture data, etc.) byaccess to a first VRAM 56 and a second VRAM 58, respectively. The CPUcore 42 writes the image data required for graphics drawing into thefirst VRAM 56 and the second VRAM 58 via the GPU 50 and the GPU 52. TheGPU 50 accesses the VRAM 56 to generate the game image data for graphicsdrawing. GPU 52 accesses the VRAM 58 to generate the game image data forgraphics drawing.

The VRAM 56 and the VRAM 58 are connected to the LCD controller 60. TheLCD controller 60 includes a register 62. Register 62 consists of, forexample, one bit. Register 62 stores a value of “0” or “1” (data value)according to an instruction of the CPU core 42. When the data value ofthe register 62 is “0”, the LCD controller 60 outputs the game imagedata generated by the GPU 50 to the LCD 12, and outputs the game imagedata generated by the GPU 52 to the LCD 14. When the data value of theregister 62 is “1”, the LCD controller 60 outputs the game image datagenerated by the GPU 50 to the LCD 14, and outputs the game image datagenerated by the GPU 52 to the LCD 12.

The LCD controller 60 reads out game image data directly from the VRAM56 and the VRAM 58, and reads out game image data from the VRAM 56 andthe VRAM 58 via the GPU 50 and the GPU 52.

The I/F circuit 54 is connected with the operating switch 20, the touchpanel 22 and the speaker 32. Operating switch 20 is the above-describedswitches 20 a, 20 b, 20 c, 20 d, 20 e, 20L and 20R. In response to anoperation of the operating switch 20, a corresponding operation signal(operation data) is input to the CPU core 42 via the I/F circuit 54. Thecoordinates position data from the touch panel 22 is input to the CPUcore 42 via the I/F circuit 54. The CPU core 42 reads-out the sound datanecessary for the game such as a game music (BGM), a sound effect orvoices of a game character (onomatopoeic sound), etc. from the RAM 48,and outputs it from the speaker 32 via the I/F circuit 54.

FIG. 1B further shows a “Wi-Fi” wireless adapter 33 and associatedantenna 35. Wi-Fi wireless adapter 33 comprises a transceiver(transmitter and receiver) that allows gaming platform P to communicatewirelessly via network N. Wi-Fi wireless adapter 33 may comprise forexample a baseband system, modulator and amplifiers compliant with theconventional 802.11 standard. Wi-Fi wireless adapter 33 wirelesslyreceives information transmitted over RF from other devices, andwirelessly sends information to other devices. Other wired or wirelesstechnology (e.g., Ethernet, WAN, Bluetooth, etc.) could be substituted.Wireless adapter 33 allows gaming platform P to communicate with othergaming platforms or other devices in the same room or vicinity and/orwith more remote devices. Network N could be a very localized networksuch as a 20-meter range WI-FI ad hoc connection, or it could be aworldwide network such as the Internet, or any other wired or wirelessnetwork you can think of.

Exemplary Illustrative Stroke-Controlled Game Character Motion

In one exemplary illustrative non-limiting implementation shown in FIG.2, a game character 201 is provided for display on one of displays 12,14. A selection area or bounding box 203 (“stylus detector”) is providedaround the game character. The game character may be 2D or 3D and may bedefined and rendered using any known graphics technique. The size of theselection area 203 can be any size, up to and including the size of theactual game screen or beyond, but in this exemplary illustrativenon-limiting implementation the area 203 is a box or rectangle that isonly slightly larger than the character 201.

In the exemplary illustrative implementation, the selection area 203 isused to detect whether a particular touch on touch screen 13 pertains tothe game character 201. Touches by stylus 16 or otherwise within theselection area 203 area are interpreted to be relevant to the motion ofgame character 201, whereas touches outside of this bounding box aredetermined not to be relevant to the motion of game character 201. Whilea rectangle is shown as the shape of the area 203 in this exemplaryillustrative non-limiting implementation, the selection area 203 may beof any suitable shape such as a polygon, a circle or any other shape.Exemplary size of the stylus detector box can be for example 32×28pixels. The same or different (e.g., smaller) bounding box can be usedfor collision detection in generating animation effects.

In the exemplary illustrative non-limiting implementation shown in FIG.3, a position 329 represents the point where the game screen was firsttouched by a stylus or other mechanism. Character 201 is shown standingon a virtual platform 205. Character 201 can move right or left in thedirection of arrows 321, 325 respectively by walking, in an animatedfashion, along the platform to the right or to the left. The character201 is also able to jump or otherwise move upwardly in the direction ofarrow 323 (e.g., to ascend to an upper level), or alternatively it isable to jump or otherwise move downwardly in the direction of arrow 327(e.g., to descend to a lower level).

In the exemplary illustrative non-limiting implementation, the character201 can not move in any arbitrary direction. Instead, just like a humanor animal on a platform, the game character can move only right or leftalong the surface of the platform. He may also be able to move up ordown (which may or may not model real world motion).

System P desirably translates touching contact (e.g., strokes from onepoint to another) with touch screen 13 to a command that controls thedirection and/or other characteristics of the motion of character 201.Assuming that the touch is within the bounding box 203, once theposition 329 has been set, system P divides the screen into a pluralityof virtual zones, defined in this exemplary illustrative non-limitingimplementation by four outwardly extending lines or vectors 313, 315,317, 319 from the initial or resting touch of the stylus. In thisexemplary illustrative non-limiting implementation, a right zone 312defined by a vector 313 (in a “northeast” direction as compared to theface of a compass) and a vector 319 (in a “southeast” direction), has arightward (“eastward”) direction associated with it, as indicated by theright arrow 321. Similarly, a left zone 316, defined by the upper(“northwesterly” oriented) left line 315 and the lower (“southwesterly”oriented) left line 317, has the leftward direction associated with itas indicated by the left arrow 325. These vectors and associated zonescan be computed dynamically by CPU 21 upon detection of a stylus touch,or they can be accessed from precomputed data stored in memory, or theycan be characteristics of the touch screen itself.

In this exemplary illustrative non-limiting implementation, an upperzone 314 is defined by upper (“northeasterly”) right line 313 and upper(“northwesterly”) left line 315 and has an upward direction associatedwith it as indicated by the up arrow 323. A lower zone 318 is defined bythe lower (“southwesterly”) left line 317 and the lower right(“southeasterly”) line 319 and has the downward direction associatedwith it as indicated by the down arrow 327. While this exemplaryillustrative non-limiting implementation represents division into fourzones, any number of zones may be provided as required by a particulargame. These zones can be considered a virtual direction control pad onthe surface of the screen display. Indicia of the zone delineations mayor may not be displayed.

To move the character 311, the stylus is moved from its initial position329 (this could be “stylus down” position or a position the stylus hasinhabited for more than a predetermined time period) to any one of thefour zones 312, 314, 316, 318 to provide a “stroke” or gesture. The pathof the stroke itself may or may not be displayed. If the stylus movesinto the right zone 312, the character 311 moves to the right (e.g., bywalking along the platform 205) as indicated by the right arrow 321. Ifthe stylus moves into any of the remaining zones 314, 316, 318, thecharacter 311 is moved in the direction indicated by the correspondingarrow 323, 325, 327. In this exemplary illustrative non-limitingimplementation, upward movement is characterized by a jump, the climbingof a ladder, or the upward entrance into a pipe. Downward movement canbe characterized by ducking, descending a ladder, or traveling down intoa pipe. If there is no pipe, then downward stylus motion can put thecharacter into the “stop” or “rest” state. Any appropriate movement cancorrespond with any zone. In one exemplary illustrative non-limitingimplementation, the character does not for example go into the “walk”state by touching alone, but rather needs the player to define adirection by inputting a stroke. This applies to walk and jump statesfrom standing still, idling, and initial state. In the exemplaryillustrative non-limiting implementation, speed of pen movement can beas slow as character 201's walking speed (e.g., ¾ pixel per frame) orany other value.

In a further exemplary illustrative non-limiting implementation shown inFIG. 4, the initial position 441 is tested to be within the selectionarea 203 in order to have the character 431 move in a selecteddirection. This implementation is also divided into four zones 432, 434,436, 438 delineated by four lines 433, 435, 437, 439 as in FIG. 3 butthe new detection areas in FIG. 4 have been dynamically calculated basedon current (different) pen position and so are in different positionsrelative to the FIG. 3 scenario. Such initial pen position can beanywhere in the pen detection area . . . not just at the center orcentroid of the character or other predetermined location relative tothe character's geometry. In this exemplary illustrative non-limitingimplementation, as long as the stylus moves from an initial position 441within the selection area 203, the character 431 will move in theappropriate direction corresponding to the selected zone. If the initialposition 441 were outside the selection area 203, the character 431would remain unaffected by stylus movement. The selection area 203 canrange in size, and need not necessarily be fixed around the character.

A potential zone configuration is shown in FIG. 5. In this exemplaryillustrative non-limiting implementation, the zones 552, 554, 556, 558all share a common corner with the initial selection point 551. When astylus (not shown) is placed on a screen, the position of the initialselection point 551 is determined and the corresponding zones 552, 554,556, 558 are also determined. Each zone has an action or a movementassociated with it. For example, the rightmost zone 552 may have arightwards movement associated with it, the lowermost zone(s) 558 mayhave downward movement associated with them, and the like.

The zones are defined by the lines 553, 555, 557, 559 bracketing thezones, with, for example, the rightmost zone 552 defined by the upperright line 553 and the lower right line 559. Movement of the stylus fromthe initial selection point 551 into the rightmost zone 552 causes agame object (not shown) to take the action or make the movementassociated with the rightmost zone 552.

The area of the initial selection point may be defined as larger than asingle pixel, so that slight stylus movements do not direct game objectmovement. In this exemplary illustrative non-limiting implementation,the exemplary size of the initial selection point 551 is a four pixelradius. This means that any stylus movement over a range of less thanfour pixels from the spot where the stylus initially touched (and/orrested for a while on) the screen will result in no change in the gameobject. The size of this point can vary in accordance with a desire tomake movement decisions more precise (smaller size) to making movementdecisions requiring a more definitive, longer stylus stroke (largersize).

In this exemplary illustrative non-limiting implementation, the upperright and upper left lines 553, 555 are provided at angles to thevertical 561. The lower right and lower left lines 557, 559 are alsoprovided at angles to the vertical 561. In this exemplary illustrativenon-limiting implementation, the upper zone 554 is larger than the lowerzone 558. This is achieved by creating a greater angle between the upperlines 553, 555 and the vertical 561. One reason why a developer may wantto provide a larger upper zone is that the human hand tends to vary morehorizontally during upward strokes than during downward ones, so theregion determining upward movement can be made larger. In this exemplaryillustrative non-limiting implementation, the preferred upper angles 563are forty-five degrees (45°) from the vertical 561 to the upper rightand left lines 553, 555 and the preferred lower angles 565 are thirtydegrees (30°) from the vertical 561 to the lower left and right lines557, 559. Any suitable or desired angles or other range delimiters maybe used. The upper and lower zones may be the same size, or the lowerzone may be larger than the upper zone, depending on the needs of thegame. While all angles have been described in relation to vertical, thecomplements of these angles and the horizontal can also be used toachieve the desired zone division.

FIG. 6 shows an exemplary non-limiting illustrative implementation ofstylus control over a moving character. A movement control subroutine A671 runs in the background while gameplay progresses. The subroutinewaits at a stylus detection step 673 and continues to check for aninitial (or other) stylus detection. If the stylus is detected, thesubroutine then, in a selection detection step 675, checks to see if thestylus is within a selection area 203 defined for a game object to becontrolled. If the stylus is not within a selection area 203, thesubroutine returns to the stylus detection step. If the stylus is withinthe selection area 203, the subroutine sets stylus position at aninitial position step 677. Then the subroutine considers the screen areato be divided into a plurality of zones at a zone setting step 679. Thesubroutine next determines if the stylus has moved out of a tolerancerange surrounding the initial position at a stylus movement detectingstep 681. If the stylus has not moved out of the tolerance range, thesubroutine remains at this step 681. If the stylus has moved out of thetolerance range, the subroutine detects the zone in which the styluscurrently resides at a zone detection step 683. Based on the zonedetected in zone detection step 683, the subroutine processes an actionassociated with that zone (e.g., move the character in an appropriatecorresponding direction) in an action processing step 685. Thesubroutine then begins again, waiting for the next action direction fromthe stylus.

Example Motion Control by Segment

In FIG. 7, an exemplary representation of a game character 701 is shown,surrounded by a plurality of regions or segments. A centermost region711 encompasses the game character in this exemplary non-limitingillustrative implementation. Eight additional regions of various sizesare arranged around the centermost region 711 in this exemplaryillustrative non-limiting implementation. The regions comprise an upperleft region 703, an upper middle region 705, an upper right region 707,a center left region 709, a center right region 713, a lower left region715, a lower middle region 717, and a lower right region 719. Any numberof suitable regions may be used. The regions do not need to besymmetrical or uniform in arrangement or size. It is possible to overlapmore than two segments. In that case, it may be desirable to setpriority order of detection by assigning priority numbers or values tothe segments. Priority can be changed as desired or convenient.

In this exemplary illustrative non-limiting implementation, a user caninstruct a character to move or act based on movement from one region toanother. No matter where the stylus starts, as long as it passes throughone of the rectangles, the system will detect its path and respondaccordingly. For example, movement from the centermost region 711 to theupper left region 703 might cause the character 701 to jump. Butmovement doesn't have to be only between two regions. As anotherexample, if the character is facing right, movement from the centermostregion 711 through the center left region 709 to the upper middle region705, might cause the character 701 to flip to face left and then jump.Any number of actions may be linked to different movements and movementpatterns between regions.

FIG. 8 shows a state diagram of an exemplary illustrative non-limitingimplementation of various actions associated with exemplary stylusmovement. While the stylus may initially touch the screen at any point,in one exemplary non-limiting illustrative implementation the programcontrolling movement does not begin tracking stylus stroke path untilthe stylus passes into one of a plurality of regions. Each state A, B,C, D, F, G, H, I represents motion from an initial stylus position (E)to a newer detectable stylus position the user can distinguish from theother states. In this particular implementation, the exemplary nineregions are represented by states A-I 801, 803, 805, 807, 817, 809, 811,813, 815. The state diagram represents possible actions that could betaken by the digital object if the stylus passes through a series ofexemplary regions. For example, if the stylus stroke begins in A 801 andmoves to E 817, the object stops acting, or does nothing if it isalready stopped. In another example, if the stylus begins in E 817 andmoves to F 807 and then to B 803, the object faces right and then jumps.While these actions and patterns are described with respect to anexemplary implementation, any number of suitable states and transitionsmay be added to provide for any suitable actions or a series of actions.

See the following table summarizing such state transitions:

E ----> A = Jump E ----> B = Jump E ----> C = Jump E ----> D = Left E----> F = Right E ----> G = Down (Stop in case of no pipe) E ----> H =Down (Stop in case of no pipe) E ----> I = Down (Stop in case of nopipe) E ----> D --->A = Flip left and Jump (If facing to left, jumponly) E ----> D ---->B = Flip left and Jump (If facing to left, jumponly) E ----> F ---->B = Flip right and Jump (If facing to right, jumponly) E ----> F ---->C = Flip right and Jump (If facing to right, jumponly) E ----> F ---->H = Flip right and stop or down (If facing toright, stop or down only) E ----> F --->I = Flip right and stop or down(If facing to right, stop or down only) E ----> D ---->G = Flip left andstop or down (If facing to left, stop or down only) E ----> D ---->H =Flip left and stop or down (If facing to left, stop or down only) A----> E = Stop B ----> E = Stop C----> E = Stop D ----> E = Stop E ---->E = No Action (not move) F ----> E = Stop G ----> E = Stop H ----> E =Stop I ----> E = Stop = A ----> A = No Action B ----> B = No Action . .. I----> I = No ActionExemplary Rotation Directional Control Based on Stylus Touch

While the examples above refer primarily to translational motion ofanimated game characters, the technology herein can also be used tocontrol different and/or additional types of movement such as forexample rotational motion. FIG. 9A shows an additional exemplaryillustrative non-limiting implementation using stylus touch to controlthe direction of rotational and translational movement of an animatedcharacter within a video game. In the example shown in FIG. 9A, the gamecharacter has encountered a bar that the game character can swingaround. FIG. 9B shows an example touch control wheel that can bedisplayed on the same or different display screen as the character andbar. By touching and dragging the FIG. 9B wheel, the game player cancontrol the motion of the game character as it spins or swings aroundthe bar. For example, by using the stylus to turn the FIG. 9B wheel, itis possible to control the game character to spin at different ratesaround the bar. Furthermore, as shown in FIG. 9A, it is possible to drawgestures using the stylus in different areas of the display screen tocause the displayed game character to perform additional actions (e.g.,jump off the bar and descend based on a downward stylus stroke; jump offthe bar and ascend upwardly based on a downward stylus stroke; or moveback and forth horizontally on the bar and/or jump off the bar and movesideways based on a leftward or rightward stroke. In the example shown,the stylus position range can be made larger (e.g., 6 pixels each way inone exemplary illustrative non-limiting implementation), but thespecific range and the angles of the vectors used to identify the areasare based on design choice. The stylus sense range can be reduced ifdesired when the game character is not engaged in spinning round thebar.

While the technology herein has been described in terms of exemplaryillustrative non-limiting implementations, it is understood that theseimplementations are provided by way of example only. For example, whilea stylus contacting a touch screen is described above, strokes madeusing any other means (e.g., a finger on a touch pad, a handheldcontroller motion or a light pen tracing a path of a cursor on atelevision screen, etc.) are also possible. The invention is to bedefined by the scope of the claims.

We claim:
 1. A computing apparatus comprising: a processing system thatincludes at least one processing circuit in communication with a memorydevice and a display device that has a touch screen, the processingsystem cooperating with the display device to: cause a virtual objectthat is located in a virtual space to be displayed on the touch screen;detect a first touch on the touch screen at a first touch position; inresponse to detection of the first touch position, divide at least partof the touch screen into a plurality of virtual zones; detect a secondtouch on the touch screen at a second touch position that is differentfrom the first touch position; determine which one of the plurality ofvirtual zones the second touch position is located; and move the virtualobject within the virtual space based at least in part on which one ofthe plurality of virtual zones the second touch position is located. 2.The computing apparatus of claim 1, wherein the processing system isfurther configured to select a movement action from among a plurality ofdifferent movement actions that can be selected based on, at least,which one of the plurality of virtual zones the second touch position islocated, wherein the display virtual object is further moved based onthe selected movement action.
 3. The computing apparatus of claim 1,wherein the first touch at the first touch position and the second touchat the second touch position are part of a continuous touch operationthat is detected from the first touch position to at least the secondtouch position.
 4. The computing apparatus of claim 1, wherein theplurality of zones includes a rightmost zone, an upper zone, a leftmostzone, and a lower zone that respectively emanate from a position on thetouch screen based on the detected first touch position.
 5. Thecomputing apparatus of claim 4, wherein the processing system is furtherconfigured to move the digital object to the right in the virtual spacein response to determination that the second touch position is locatedwithin the rightmost zone.
 6. The computing apparatus of claim 4,wherein the processing system is further configured to move the digitalobject to the left in the virtual space in response to determinationthat the second touch position is located within the leftmost zone. 7.The computing apparatus of claim 4, wherein the processing system isfurther configured to move the digital object downwards in the virtualspace in response to determination that the second touch position islocated within the lower zone.
 8. The computing apparatus of claim 4,wherein the processing system is further configured to move the digitalobject upwards in the virtual space or jump the digital object in thevirtual space in response to determination that the second touchposition is located within the lower zone
 9. The computing apparatus ofclaim 1, wherein the processing system is further configured to:determine if the first touch position is within an area associated withwhere the virtual object is displayed on the touch screen; and selectthe virtual object based on determining the first touch position to bewithin the area, wherein dividing the touch screen into the plurality ofvirtual zones is further based on selection of the virtual object. 10.The computing apparatus of claim 9, wherein virtual object is a videogame character and the area is a bounding box of the video gamecharacter.
 11. A non-transitory computer readable storage medium storinginstructions for use with a computing apparatus that includes aprocessing system with at least one processor coupled to a memory deviceand a display device that has a touch screen, the stored instructionscomprising instructions that are configured to cause the processingsystem to: generate an image of a virtual space that includes a virtualobject located therein; display the generated image on the touch screenof the display device; detect a first touch on the touch screen at afirst touch position; in response to detection of the first touchposition, divide at least part of the touch screen into a plurality ofvirtual zones; detect a second touch on the touch screen at a secondtouch position that is different from the first touch position;determine which one of the plurality of virtual zones the second touchposition is located; cause the virtual object within the virtual spaceto perform a movement action based at least in part on which one of theplurality of virtual zones the second touch position is located; andgenerate and display an updated image(s) in accordance with theperformed movement action.
 12. The non-transitory computer readablestorage medium of claim 11, wherein the instructions are furtherconfigured to cause the processing system to select the movement actionfrom among a plurality of different movement actions that can beselected based on, at least, which one of the plurality of virtual zonesthe second touch position is located, wherein the display virtual objectis further moved based on the selected movement action.
 13. Thenon-transitory computer readable storage medium of claim 11, wherein thefirst touch at the first touch position and the second touch at thesecond touch position are part of a continuous touch operation that isdetected from the first touch position to at least the second touchposition.
 14. The non-transitory computer readable storage medium ofclaim 11, wherein the plurality of zones includes a rightmost zone, anupper zone, a leftmost zone, and a lower zone that respectively emanatefrom a position on the touch screen based on the detected first touchposition.
 15. The non-transitory computer readable storage medium ofclaim 11, wherein the instructions are further configured to cause theprocessing system to: determine if the first touch position is within anarea associated with where the virtual object is displayed on the touchscreen; and select the virtual object based on determining the firsttouch position to be within the area, wherein dividing the touch screeninto the plurality of virtual zones is further based on selection of thevirtual object.
 16. The non-transitory computer readable storage mediumof claim 11, wherein virtual object is a video game character and thearea is a bounding box of the video game character.
 17. A computersystem comprising: a touch-enabled display device configured to displaygenerated display screens in a display area; and a processing systemthat includes at least one processor coupled to a memory device, theprocessing system coupled with the display device and configured to:generate a screen that includes an image of a virtual object located ina virtual space and output the generated screen to the for thetouch-enabled display device for display thereon; detect a first touchat a first position on the touch-enabled display device within a displayarea that is displaying an image of a virtual object located in avirtual space; perform a determination that the first position isprovided in correspondence with a displayed location of the virtualobject; virtually divide the display area on the touch-enabled displaydevice into a plurality of virtual zones based on the first touchposition; after detection of the first touch, detect a second touch onthe touch-enabled display device at a second touch position that isdifferent from the first touch position; select at least one of theplurality of virtual zones by determining in which one of the pluralityof virtual zones the second touch position is located; and determine atleast one movement command for the virtual object based on the selectedat least one of the plurality of virtual zones; move the virtual objectwithin the virtual space based on the determined at least one movementcommand; and output generated screen(s) to the touch-enabled displaydevice to represent the movement of the virtual object in accordancewith the at least one movement command.
 18. The computer system of claim17, wherein the processing system is further configured to: associate abounding area with the virtual object; and select the virtual objectbased on determining the first touch position to be within the boundingarea, wherein dividing the touch screen into the plurality of virtualzones is further based on selection of the virtual object.
 19. Thecomputer system of claim 17, wherein the first touch at the first touchposition and the second touch at the second touch position are part of acontinuous touch operation that is detected from the first touchposition to at least the second touch position.
 20. The computer systemof claim 17, wherein the plurality of zones includes a rightmost zone,an upper zone, a leftmost zone, and a lower zone that respectivelyemanate from a position on the touch screen based on the detected firsttouch position.